/**
 * User: alesj
 * Date: 10.1.2006
 * Time: 18:48:19
 * 
 * (C) Genera Lynx d.o.o.
 */

package com.alesj.blueberry.sar.smpp.impl;

import com.alesj.blueberry.sar.smpp.SMPPService;
import ie.omk.smpp.Connection;
import ie.omk.smpp.event.ReceiverExceptionEvent;
import ie.omk.smpp.event.ReceiverExitEvent;
import ie.omk.smpp.event.ReceiverStartEvent;
import ie.omk.smpp.event.SMPPEvent;
import ie.omk.smpp.message.*;

/**
 * Simple JMX interface.
 *
 * @author <a href="mailto:ales.justin@genera-lynx.com">Ales Justin</a>
 */
public interface MainConnectionObserverMBean {

    SMPPService getSMPPService();
    void setSMPPService(SMPPService smppService);
    int getRegisteredDelivery();
    void setRegisteredDelivery(int registeredDelivery);
    String getJndiName();
    void setJndiName(String jndiName);
    String getMessageRepositoryClass();
    void setMessageRepositoryClass(String messageRepositoryClass) throws Exception;

    // adapter

    void update(Connection source, SMPPEvent event);
    void packetReceived(Connection source, SMPPPacket pak);
    void receiverExit(Connection source, ReceiverExitEvent rev);
    void receiverExitException(Connection source, ReceiverExitEvent rev);
    void receiverException(Connection source, ReceiverExceptionEvent rev);
    void receiverStart(Connection source, ReceiverStartEvent rs);
    void userEvent(Connection source, SMPPEvent ev);
    void deliverSM(Connection source, DeliverSM dm);
    void submitSMResponse(Connection source, SubmitSMResp smr);
    void submitMultiResponse(Connection source, SubmitMultiResp smr);
    void cancelSMResponse(Connection source, CancelSMResp cmr);
    void replaceSMResponse(Connection source, ReplaceSMResp rmr);
    void paramRetrieveResponse(Connection source, ParamRetrieveResp prr);
    void queryResponse(Connection source, SMPPResponse qr);
    void queryLink(Connection source, EnquireLink el);
    void queryLinkResponse(Connection source, EnquireLinkResp elr);
    void unbind(Connection source, Unbind ubd);
    void unbindResponse(Connection source, UnbindResp ubr);
    void bindResponse(Connection source, BindResp br);
    void genericNack(Connection source, GenericNack nack);
    void unidentified(Connection source, SMPPPacket pak);

}
